<?php
/*
961. 重复 N 次的元素
在大小为 2N 的数组 A 中有 N+1 个不同的元素，其中有一个元素重复了 N 次。

返回重复了 N 次的那个元素。

示例 1：
输入：[1,2,3,3]
输出：3

示例 2：
输入：[2,1,2,5,3,2]
输出：2

示例 3：
输入：[5,1,5,2,5,3,5,4]
输出：5

https://leetcode-cn.com/problems/n-repeated-element-in-size-2n-array/

*/

$arr = [5,1,5,2,5,3,5,4];
print_r((new Solution961())->repeatedNTimes($arr));

class Solution961
{
    // 哈希
    function repeatedNTimes($nums)
    {
        $len = count($nums);
        $hash = [];
        foreach ($nums as $val) {
            if (isset($hash[$val])) {
                $hash[$val]++;
            } else {
                $hash[$val] = 1;
            }
        }
        foreach ($hash as $num => $times) {
            if ($times == $len / 2) {
                return $num;
            }
        }
    }
}
